package cn.windy.samary.module.file.service;

import cn.windy.samary.module.abstracts.service.IAbstractService;
import cn.windy.samary.module.file.entity.FileInfo;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

/**
 * @author zyl
 * @date 2018/4/11 15:37
 */
public interface IFileInfoService extends IAbstractService<FileInfo> {

    /**
     * @param fileName   文件名
     * @param fileType   文件类型
     * @param moduleType 模块类型
     * @param files      文件
     * @param type       返回类型，type不为空时，返回图片请求路径，流方式加载
     * @return 。
     * @throws IOException e
     */
    Object[] fileUpload(String fileName, String fileType, String moduleType, MultipartFile[] files, String type)
            throws IOException;

    /**
     * 上传文件
     *
     * @param file            MultipartFile
     * @param parentDirectory 文件要保存的父级目录
     * @param fileName        文件名，如果为null，将随机生成
     * @param isRandom        是否随机命名，若为false,且fileName为null，将使用原文件名
     * @return 新文件名，不包含路径
     * @throws IOException e
     */
    String fileUpload(MultipartFile file, File parentDirectory, String fileName, boolean isRandom)
            throws IOException;

}
